// src/http.js
import axios from 'axios';

// 创建 Axios 实例
const http = axios.create({
    baseURL: 'http://8.138.134.224:9000/api', // 线上
    // baseURL: 'http://127.0.0.1:9000/api', // 本地
    timeout: 10000, // 请求超时时间
    headers: {
        'Content-Type': 'application/json',
    },
});

// 请求拦截器
http.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么，比如加入 token
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 响应拦截器
http.interceptors.response.use(
    (response) => {
        // 对响应数据做点什么
        return response.data;
    },
    (error) => {
        // 对响应错误做点什么
        if (error.response) {
            // 服务器返回的非 2xx 响应
            switch (error.response.status) {
                case 401:
                    // 未授权，跳转到登录页或其他处理
                    console.error('Unauthorized, please log in again.');
                    break;
                case 403:
                    // 拒绝访问
                    console.error('Access denied.');
                    break;
                case 500:
                    // 服务器错误
                    console.error('Server error.');
                    break;
                default:
                    console.error('An error occurred:', error.response.status);
            }
        } else {
            // 其他错误，比如网络问题
            console.error('Network error:', error.message);
        }
        return Promise.reject(error);
    }
);

export default http;
